package com.un.ebs.sys.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.un.ebs.core.enums.PowerTypeEnum;
import com.un.ebs.sys.domain.AppRole;
import com.un.ebs.sys.domain.UserExt;
import com.un.ebs.sys.dto.AppRoleAddDto;
import com.un.ebs.sys.dto.AppRoleSetPowerDto;
import com.un.ebs.sys.dto.AppRoleSetRuleDto;
import com.un.ebs.sys.dto.AppRoleUpdateDto;

import java.util.List;

/**
 * <p>
 * 服务类
 * </p>
 *
 * @author liubo
 * @since 2019-09-15
 */
public interface AppRoleService extends IService<AppRole> {

    void add(AppRoleAddDto req);

    void update(AppRoleUpdateDto req);

    AppRole queryById(String id);

    List<String> queryIdByCode(List<String> codes);

    List<UserExt> queryUserByRole(List<String> roleIds);

    void delete(String id);

    void changeSort(String id, int index);

    void setPower(String roleId, List<AppRoleSetPowerDto> list);

    /**
     * 为角色设置资源权限
     *
     * @param roleId        角色ID
     * @param resourceId    资源ID
     * @param checked       是否赋于权限
     * @param powerTypeEnum 资源类型
     */
    void setResourcePower(String roleId, String resourceId, Boolean checked, PowerTypeEnum powerTypeEnum);

    void setRule(String roleId, List<AppRoleSetRuleDto> list);

}
